/***************************************************************
*  Copyright (c) 2007 by GroupMe! Team (www.groupme.net)
*  All rights reserved.
*
*  This file is part of the GroupMe! Project. Source code of 
*  this project is closed and redistribution of this code is
*  prohibited. 
*  
*  Contact: http://www.groupme.net
*
*  This copyright notice MUST APPEAR in all copies of the file!
***************************************************************/
package net.groupme.logging.model;

import java.sql.Timestamp;

import net.groupme.model.User;

/**
 * created on Sep 20, 2007
 * 
 * This interface defines a Log Event (e.g. user click, ...).
 * 
 * @author Fabian Abel, <a href="mailto:abel@l3s.de">abel@l3s.de</a>
 * @author last edited by: $Author: fabian $
 * 
 * @version $Revision: 1.2 $ $Date: 2007-09-20 16:16:52 $
 */
public interface LogEvent {

	/**
	 * This method returns the ID of a LogEvent.
	 * @return the actionID
	 */
	public abstract int getID();
	
	/**
	 * This method sets the ID of a LogEvent.
	 * @param id the ID
	 */
	public abstract void setID(int id);
	
	/**
	 * This method returns the actionID of a LogEventNavigationImpl object.
	 * @return the actionID
	 */
	public abstract ActionIdentifier getActionID();

	/**
	 * This method sets the actionID of a LogEventNavigationImpl object.
	 * @param actionID the actionID to set
	 */
	public abstract void setActionID(ActionIdentifier actionID);

	/**
	 * This method returns the user of a LogEventNavigationImpl object.
	 * @return the user
	 */
	public abstract User getUser();

	/**
	 * This method sets the user of a LogEventNavigationImpl object.
	 * @param user the user to set
	 */
	public abstract void setUser(User user);

	/**
	 * This method returns the timestamp of a AbstractLogEvent object.
	 * @return the timestamp
	 */
	public abstract Timestamp getTimestamp();

	/**
	 * This method sets the timestamp of a AbstractLogEvent object.
	 * @param timestamp the timestamp to set
	 */
	public abstract void setTimestamp(Timestamp timestamp);

}